TOP

Tłumacz Google w LibreOffice Calc

Opis

Standardowa funkcjonalność programu LibreOffice Calc nie obejmuje funkcji tłumaczenia tekstu na inne języki. Jednak każdy użytkownik może samodzielnie stworzyć taką funkcję.

W tym artykule przyjrzymy się niestandardowej funkcji GoogleTranslate_YouLibreCalc(), która umożliwia tłumaczenie tekstu bezpośrednio w komórce dowolnego arkusza.

Funkcja wykorzystuje witrynę do tłumaczenia tekstu "Tłumacz Google" i można ich używać w dowolnych formułach zarówno niezależnie, jak i razem z innymi standardowymi funkcjami.



StarBASIC kod funkcji Google Translate

Dodać funkcja Tłumacz Google , otwórz menu Tools - Macros - Edit Macros... , wybierać Moduł1 i skopiuj następujący tekst do modułu:

  1. Option VBASupport 1  
  2.   
  3. Function GoogleTranslate_YouLibreCalc(TextToTranslate As String, SrcLang As String, TrgLang As String)  
  4.   ' moonexcel.com.ua   
  5.   Dim FCalc      As Object  
  6.   Dim WebsiteURL As String    
  7.   Dim XMLHTTP    As Object  
  8.   Dim oHTML      As Object  
  9.   Dim HTMLDoc    As HTMLDocument  
  10.   Dim ObjClass   As Object  
  11.       
  12.   FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess")   
  13.   TextToTranslate =  FCalc.callFunction("ENCODEURL", Array(TextToTranslate))  
  14.     
  15.   SrcLang = LCase(SrcLang)  
  16.   TrgLang = LCase(TrgLang)  
  17.     
  18.   IF SrcLang = "zh-cn" Then SrcLang = "zh-CN"  
  19.   IF SrcLang = "zh-tw" Then SrcLang = "zh-TW"  
  20.     
  21.   IF TrgLang = "zh-cn" Then TrgLang = "zh-CN"  
  22.   IF TrgLang = "zh-tw" Then TrgLang = "zh-TW"   
  23.       
  24.   WebsiteURL = "https://translate.google.com/m?sl=" + SrcLang + "&tl=" + TrgLang + "&hl=en&q=" + TextToTranslate  
  25.       
  26.   ' Wykonujemy wywołanie API do serwera WWW za pomocą żądania AJAX   
  27.   Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")  
  28.    
  29.   XMLHTTP.Open "GET", WebsiteURL, False    
  30.   XMLHTTP.Send  
  31.    
  32.   ' Tworzymy dokument HTML, korzystając z tekstu odpowiedzi na żądanie AJAX   
  33.   Set oHTML = CreateObject("HTMLFile")  
  34.   With oHTML  
  35.         .Open  
  36.         .Write XMLHTTP.responseText  
  37.         .Close  
  38.   End With  
  39.     
  40.   ' Konwertujemy tekst HTML na model obiektowy korzystając z biblioteki elementów sieciowych Microsoft HTML Object Library   
  41.   Set HTMLDoc = oHTML    
  42.     
  43.   Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0)  
  44.   If Not ObjClass Is Nothing Then  
  45.     GoogleTranslate_YouLibreCalc = ObjClass.innerText      
  46.   End If   
  47.    
  48.   ' Uwalniamy pamięć   
  49.   Set ObjClass = Nothing  
  50.   Set oHTML    = Nothing  
  51.   Set XMLHTTP  = Nothing    
  52. End Function  

Dalej, zamknij Macro Edytor i wróć do arkusza LibreOffice Calc , wybierz dowolną komórkę i skorzystaj z naszej nowej funkcji GoogleTranslate_YouLibreCalc() .

Korzystanie z rozszerzenia

Od tego momentu ta funkcja będzie dostępna we wszystkich plikach, które zostaną otwarte w LibreOffice Calc.